# 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        pos_begin = 0 
        pos_end = len(nums) - 1
        while True:
            if pos_end <= pos_begin:
                break
            if nums[pos_begin] ==  0:
                while True:
                    if nums[pos_end] != 0:
                        break
                    else:
                        pos_end -=1
                nums[pos_begin] = nums[pos_end]
                nums[pos_end] = 0
                pos_begin += 1
                pos_end -= 1
            else:
                pos_begin += 1
